1. Field of the Invention
This invention is related generally to the decoding of linear block codes, and more specifically to a method of soft input-soft output decoding.
2. Description of the Related Art
The transmission of digital information has become, and will continue to be, the most common form of communications for years to come. Digital communication links in the form of satellite communications systems, wireless LANs, digital cellular communications systems, digital video broadcast, and many others, are used for the efficient and flexible transmission of a wide variety of data services. However, in most, if not all cases, the digital data is subjected to imperfect transmission mechanisms which introduce various levels of noise into the transmitted signal and threaten the reliability of the transmitted data at the receiving end. As a result, designers have continued to develop error-detecting and correcting tools in an effort to improve data reliability in communications regimes.
Forward error correction is the capability of a receiving station to correct a transmission error, and can increase throughput of a data link operating in a noisy environment. The transmitting station appends information to the data in the form of error correction bits, however, the number of error correction bits also impacts the size of the transmitted word, which ultimately effects the bandwidth of the data channel. Therefore, the number of error-correction bits must be chosen with bandwidth, and other factors in mind.
Turbo codes are a relatively new class of correction codes which represent the next leap forward in error correction. The designer has more flexibility to determine the required transmission energy, bandwidth, and system complexity with the increased error-correction performance offered by turbo codes. Turbo codes break a complex decoding problem into simple steps. Each step is then repeated until a solution is reached. The complexity of convolutional codes has slowed the development of low-cost turbo convolutional decoders. However, turbo product codes offer substantially higher data throughput in hardware at a more reasonable cost by solving multiple steps simultaneously. As a result, turbo product codes are receiving more attention in advanced terrestrial and satellite communications systems due to their unmatched error-correction capability.
A sequence of logical 1s and 0s in a digital message is typically sent from a source device through a channel medium to a decoder at a destination end for decoding. However, before transmission, the logical 1s and 0s are converted into voltages, and transmitted through the channel medium as +1 volt and −1 volt, respectively. Channel noise is inherently introduced into the voltage signal which is received by the receiver at the destination device. The decoder at the destination device will then make a hard decision based upon the received voltage signals. (With a threshold placed at 0 volts, a value greater than or equal to 0 volts is interpreted as a logical 1, and a value less than 0 volts is interpreted as a logical 0.) This is termed hard decision decoding (HDD), since each symbol, as first represented by a voltage, is converted to logical 1s and 0s prior to decoding. Soft decision decoding utilizes more information than the logical 1s and 0s by utilizing the received voltage signals, usually quantized to three or four bits.
Turbo coding (also called “iterative” decoding) of product codes (and variances thereof) requires the use of a decoder that uses soft information as input (“soft input information”), and yields soft information at the output (“soft output information”). Soft information is a more detailed measure of received channel information. Soft input information to a decoder is that which indicates what value each received bit is assigned (e.g., a logical 1 or 0), and an associated value that indicates the reliability or confidence that the value assigned to the particular received bit is correct. The decoder then uses the soft input information to decode the received information to produce an estimate of the original transmitted data. Soft output information of a decoder is that information which not only provides an accurate estimate of the original message, but also reliability or confidence information as to the likelihood that the decoded bit is correct. Decoding with soft input information yielding soft output information is called SISO (Soft Input-Soft Output) decoding.
Prior art SISO turbo decoding algorithms are complex, bandwidth-intensive, and costly to implement. What is needed is an efficient and more cost effective algorithm which is easier to implement and exhibits near optimal SISO decoding with a tiny fraction of the complexity of the prior art decoding algorithms.